package com.gpStudy.design.observer;

import java.util.Observable;

/**
 * jdk 提供的一种观察者的实现形式
 *
 *  Observable 是必须要来继承实现，监控内容发生改变时，需要将 Observable 的 changed 变量更新
 *  只能通过调用 setChanged()方法，而 setChanged() 方法是 protected 修饰的 只能子类调用
 *
 *
 */
public final class GPer extends Observable {

    private String name = "GP生态圈";

    private GPer(){

    }

    public static GPer getInstance(){
        return Inner_GPer.gPer;
    }

    private static class Inner_GPer{
        private static GPer gPer = new GPer();
    }

    public String getName(){
        return this.name;
    }

    public void publicQuestion(Question question){

        System.out.println(question.getUserName() +"在"+this.name+"提问了一个问题。");
        setChanged();
        notifyObservers(question);

    }
}
